/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.sysschool.entity;

import org.hibernate.validator.constraints.Length;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonFormat;

import javax.validation.constraints.NotNull;
import java.util.Date;

import com.thinkgem.jeesite.common.persistence.DataEntity;
import com.thinkgem.jeesite.modules.sys.entity.User;

/**
 * 学校管理Entity
 * @author lihuan
 * @version 2018-11-28
 */
public class SysSchool extends DataEntity<SysSchool> {
	
	private static final long serialVersionUID = 1L;
	private String schName;		    // 学校名称
	private User user;		        
	private String schCode;		    // 学校编码
	private String parentId;		// 上级id
	private String parentCode;		// 上级单位编码(门诊)
	private String schType;		    // 学段  1:小学 2:初中 3:高中
	private String enrlYear;		// 入学年份
	private String parentName;		// 上级单位名称
	private Date physicalDate;    //体检日期
	
	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

	public SysSchool() {
		super();
	}

	public SysSchool(String id){
		super(id);
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getPhysicalDate() {
		return physicalDate;
	}

	public void setPhysicalDate(Date physicalDate) {
		this.physicalDate = physicalDate;
	}

	@Length(min=1, max=50, message="学校名称长度必须介于 1 和 50 之间")
	public String getSchName() {
		return schName;
	}

	public void setSchName(String schName) {
		this.schName = schName;
	}
	
	@Length(min=0, max=50, message="学校编码长度必须介于 0 和 50 之间")
	public String getSchCode() {
		return schCode;
	}

	public void setSchCode(String schCode) {
		this.schCode = schCode;
	}
	
	@JsonBackReference
	@NotNull(message="上级id不能为空")
	public String getParentId() {
		return parentId;
	}

	public void setParentId(String parentId) {
		this.parentId = parentId;
	}
	
	@Length(min=1, max=255, message="上级单位编码(门诊)长度必须介于 1 和 255 之间")
	public String getParentCode() {
		return parentCode;
	}

	public void setParentCode(String parentCode) {
		this.parentCode = parentCode;
	}
	
	@Length(min=1, max=64, message="学段长度必须介于 1 和 64 之间")
	public String getSchType() {
		return schType;
	}

	public void setSchType(String schType) {
		this.schType = schType;
	}
	
	@Length(min=0, max=10, message="入学年份长度必须介于 0 和 10 之间")
	@JsonFormat(pattern = "yyyy")
	public String getEnrlYear() {
		return enrlYear;
	}

	public void setEnrlYear(String enrlYear) {
		this.enrlYear = enrlYear;
	}
	
	@Length(min=0, max=50, message="上级单位名称长度必须介于 0 和 50 之间")
	public String getParentName() {
		return parentName;
	}

	public void setParentName(String parentName) {
		this.parentName = parentName;
	}
	
}